<?php
	if($this->getUsuario() != null){
		if (defined('PARAMETRO_1')) {
			if ($_POST) {
				if (defined('PARAMETRO_1') && (constant('PARAMETRO_1') == 'usuarios' || constant('PARAMETRO_1') == 'cursos')) {
					if (constant('PARAMETRO_1') == 'usuarios') {
						if (defined('PARAMETRO_2'))
							$ordenacaoAtual	=	constant('PARAMETRO_2');
						else
							$ordenacaoAtual	=	'nome';
							
						if (defined('PARAMETRO_3'))
							$ordemAtual	=	constant('PARAMETRO_3');
						else
							$ordemAtual	=	'asc';
							
						if (defined('PARAMETRO_4'))
							$paginaAtual	=	str_replace('pagina', '', constant('PARAMETRO_4'));
						else
							$paginaAtual	=	1;
							
						if (defined('PARAMETRO_5'))
							$strBusca	=	urldecode(constant('PARAMETRO_5'));
						else
							$strBusca	=	null;
						
						if (isset($_POST['btnBuscar'])) {
							$strNome				=	stripslashes(pegaPost('strNome'));
					    	$comFoto				=	pegaPost('strApenasUsuariosComFoto');
					    	$strSexo				=	pegaPost('strSexo');
					    	$strCidade				=	pegaPost('strCidade');
					    	$strEstado				=	pegaPost('strEstado');
					    	$strFinalidadeUso		=	pegaPost('strFinalidadeUso');
					    	$strEmail				=	pegaPost('strEmail');
					    	
							$strBusca 	=	'?nome=' . $strNome . '&foto=' . $comFoto . '&sexo=' . $strSexo . '&cidade=' . $strCidade . '&estado=' . $strEstado . '&tipocadastro=' . $strFinalidadeUso . '&email=' . $strEmail;
							
							redireciona(array('buscaavancada', 'usuarios', 'ordenanome', 'asc', 'pagina1', $strBusca));
						}
					}
					else {
						if (defined('PARAMETRO_2'))
							$ordenacaoAtual	=	constant('PARAMETRO_2');
						else
							$ordenacaoAtual	=	'nome';
							
						if (defined('PARAMETRO_3'))
							$ordemAtual	=	constant('PARAMETRO_3');
						else
							$ordemAtual	=	'asc';
							
						if (defined('PARAMETRO_4'))
							$paginaAtual	=	str_replace('pagina', '', constant('PARAMETRO_4'));
						else
							$paginaAtual	=	1;
							
						if (defined('PARAMETRO_5'))
							$strBusca	=	urldecode(constant('PARAMETRO_5'));
						else
							$strBusca	=	null;
						
						if (isset($_POST['btnBuscar'])) {
							
							$strTitulo				=	stripslashes(pegaPost('strTitulo'));
					    	$comLogo				=	stripslashes(pegaPost('strApenasCursosComLogo'));
					    	$idArea					=	stripslashes(pegaPost('strArea'));
					    	$strNivel				=	stripslashes(pegaPost('strNivel'));
					    	$strDataInicioMatriculaInicio	=	pegaPost('strDataInicioMatriculaInicio') == '' ? null : getDataFormatoBd(stripslashes(pegaPost('strDataInicioMatriculaInicio')));
					    	$strDataInicioMatriculaFim		=	pegaPost('strDataInicioMatriculaFim') == '' ? null : getDataFormatoBd(stripslashes(pegaPost('strDataInicioMatriculaFim')));
					    	$strDataTerminoMatriculaInicio	=	pegaPost('strDataTerminoMatriculaInicio') == '' ? null : getDataFormatoBd(stripslashes(pegaPost('strDataTerminoMatriculaInicio')));
					    	$strDataTerminoMatriculaFim		=	pegaPost('strDataTerminoMatriculaFim') == '' ? null : getDataFormatoBd(stripslashes(pegaPost('strDataTerminoMatriculaFim')));
					    	$strDataInicioCursoInicio		=	pegaPost('strDataInicioCursoInicio') == '' ? null : getDataFormatoBd(stripslashes(pegaPost('strDataInicioCursoInicio')));
					    	$strDataInicioCursoFim			=	pegaPost('strDataInicioCursoFim') == '' ? null : getDataFormatoBd(stripslashes(pegaPost('strDataInicioCursoFim')));
					    	$strDataTerminoCursoInicio		=	pegaPost('strDataTerminoCursoInicio') == '' ? null : getDataFormatoBd(stripslashes(pegaPost('strDataTerminoCursoInicio')));
					    	$strDataTerminoCursoFim			=	pegaPost('strDataTerminoCursoFim') == '' ? null : getDataFormatoBd(stripslashes(pegaPost('strDataTerminoCursoFim')));
					    	$strProfessor			=	stripslashes(pegaPost('strProfessor'));
					    	
							$strBusca 	=	'?titulo=' . $strTitulo . '&logo=' . $comLogo . '&idarea=' . $idArea . '&nivel=' . $strNivel .
											'&iniciomatricula1=' . $strDataInicioMatriculaInicio . '&iniciomatricula2=' . $strDataInicioMatriculaFim . '&terminomatricula1=' . $strDataTerminoMatriculaInicio . '&terminomatricula2=' . $strDataTerminoMatriculaFim .
											'&iniciocurso1=' . $strDataInicioCursoInicio . '&iniciocurso2=' . $strDataInicioCursoFim . '&terminocurso1=' . $strDataTerminoCursoInicio . '&terminocurso2=' . $strDataTerminoCursoFim .
											'&professor=' . $strProfessor;
							
							redireciona(array('buscaavancada', 'cursos', 'ordenatitulo', 'asc', 'pagina1', $strBusca));
						}
					}
				}
			}
			else {
				if (defined('PARAMETRO_1') && (constant('PARAMETRO_1') == 'usuarios' || constant('PARAMETRO_1') == 'cursos')) {
					if (constant('PARAMETRO_1') == 'usuarios') {
						//CONFIGURA TITULO DA PAGINA
						$this->getSmarty()->assign('TITULO_BARRA_NAVEGADOR', texto('TITULO_BARRA_NAVEGADOR', array(texto('AREA_USUARIOS') . ' - ' . texto('LABEL_BUSCA_AVANCADA'))));
						$this->getSmarty()->assign('TEXTO_NAVEGACAO', texto('LABEL_BUSCA_AVANCADA') . ' > ' . texto('AREA_USUARIOS'));
						
						$this->getSmarty()->assign('listaEstados', getEstados());
						$this->getSmarty()->assign('listaNiveis', getNiveis());
						$this->getSmarty()->assign('listaPeriodos', getPeriodo());
						$this->getSmarty()->assign('listaTitulacoes', getTitulacoes());
						
						//PEGA PARAMETROS DA BUSCA
						if (defined('PARAMETRO_2'))
							$ordenacaoAtual	=	str_replace('ordena', '', constant('PARAMETRO_2'));
						else
							$ordenacaoAtual	=	'nome';
						
						$ordenacaoAtual	=	$ordenacaoAtual	==	'tipocadastro' ? 'tipoCadastro' : $ordenacaoAtual;
						$ordenacaoAtual	=	$ordenacaoAtual	==	'ultimoacesso' ? 'ultimoAcesso' : $ordenacaoAtual;
						
						if (!preg_match('/^(idUsuario|nome|email|tipoCadastro|instituicao|ultimoAcesso|dataCadastro)$/', $ordenacaoAtual))
							redireciona(array('404'));
							
						if (defined('PARAMETRO_3'))
							$ordemAtual	=	constant('PARAMETRO_3');
						else
							$ordemAtual	=	'asc';
							
						if (defined('PARAMETRO_4'))
							$paginaAtual	=	str_replace('pagina', '', constant('PARAMETRO_4'));
						else
							$paginaAtual	=	1;
							
						if (defined('PARAMETRO_5'))
							$strBusca	=	htmlentities(urldecode(constant('PARAMETRO_5')));
						else
							$strBusca	=	null;
						
						$strNome					=	isset($_GET['nome'])					?	stripslashes(urldecode($_GET['nome'])) : '';
						$comFoto					=	isset($_GET['foto'])					?	urldecode($_GET['foto']) : '';
						$strSexo					=	isset($_GET['sexo'])					?	urldecode($_GET['sexo']) : '';
						$strCidade					=	isset($_GET['cidade'])					?	stripslashes(urldecode($_GET['cidade'])) : '';
						$strEstado					=	isset($_GET['estado'])					?	urldecode($_GET['estado']) : '';
						$strFinalidadeUso			=	isset($_GET['tipocadastro'])			?	urldecode($_GET['tipocadastro']) : '';
						$strInstituicao				=	isset($_GET['instituicao'])				?	stripslashes(urldecode($_GET['instituicao'])) : '';
						$strEmail					=	isset($_GET['email'])					?	stripslashes(urldecode($_GET['email'])) : '';
						
						if (!isset($_SESSION['constructore']['listarUsuarios']) && $strBusca != '') {
							$_SESSION['constructore']['listarUsuarios']['strNome']						=	htmlentities($strNome);
					    	$_SESSION['constructore']['listarUsuarios']['strApenasUsuariosComFoto']		=	$comFoto;
					    	$_SESSION['constructore']['listarUsuarios']['strSexo']						=	$strSexo;
					    	$_SESSION['constructore']['listarUsuarios']['strCidade']					=	htmlentities($strCidade);
					    	$_SESSION['constructore']['listarUsuarios']['strEstado']					=	$strEstado;
					    	$_SESSION['constructore']['listarUsuarios']['strFinalidadeUso']				=	$strFinalidadeUso;
					    	$_SESSION['constructore']['listarUsuarios']['strInstituicao']				=	htmlentities($strInstituicao);
					    	$_SESSION['constructore']['listarUsuarios']['strEmail']						=	htmlentities($strEmail);
						}
						
						//CONFIGURA VARIAVEIS DE CONTROLE DE EXIBICAO DE PARTES DA PAGINA
						$mostraBuscaAvancada	=	true;
						$possivelProcurarEmails	=	true;
						$mostraApagados			=	'nao';
						
						if ($resultado			=	Usuario::buscar(null, codificaStringBusca($strNome), $comFoto, null, null, $strSexo, codificaStringBusca($strCidade), $strEstado, $strFinalidadeUso, codificaStringBusca($strInstituicao), null, null, null, null, null, null, null, null, null, null, codificaStringBusca($strEmail), null, null, null, null, null, $mostraApagados, $paginaAtual, constant('__QTD_ITENS_LISTA__'), $ordenacaoAtual, $ordemAtual)) {
							$listaUsuarios		=	$resultado['listaResultados'];
							$qtdPaginas			=	$resultado['qtdPaginas'];
							$qtdUsuariosTotal	=	$resultado['qtdResultadosTotal'];
							
							$qtdUsuariosPagina	=	sizeof($listaUsuarios);
							
							foreach ($listaUsuarios as $indice => $usuario) {
								if ($usuario['foto'] == '')
									$usuario['foto']	=	'usuariodefault_pequeno.png';
								else
									$usuario['foto']	=	str_replace('original', 'pequeno', $usuario['foto']);
								
								$usuario['dimensoesFoto']	=	getimagesize(constant('__CAMINHO_FOTO_USUARIO__') . $usuario['foto']);
								$usuario['dimensoesFoto']	=	'width="' . $usuario['dimensoesFoto'][0] . '" height="' . $usuario['dimensoesFoto'][1] . '"';
								
								$usuario['foto']			=	constant('__URL_FOTO_USUARIO__') . $usuario['foto'];
								
								$usuario['titleFoto']		=	texto('TITLE_FOTO_USUARIO', array($usuario['nome']));
								$usuario['href']			=	montalink(array('usuario', $usuario['idUsuario']));
								$usuario['ultimoAcesso']	=	getDataHoraFormatada($usuario['ultimoAcesso']);
								$usuario['exibeEmail']		=	true;
								
								$usuario['tipoCadastro']	=	getFuncaoUsuarioExibir($usuario['tipoCadastro']);
								
								$listaUsuarios[$indice]		=	$usuario;
							}
							
							$listaPaginas	=	array();
							for ($i = 1; $i <= $qtdPaginas; $i++) {
								if ($i != $paginaAtual)
									array_push($listaPaginas, array('href' => montaLink(array('administracao', 'usuarios', $ordenacaoAtual, $ordemAtual, 'pagina' . $i, $strBusca)), 'pagina' => $i));
								else
									array_push($listaPaginas, array('pagina' => $i));
							}
							
							$this->getSmarty()->assign('TEXTO_QUANTIDADE_RESULTADOS', texto('TEXTO_QUANTIDADE_RESULTADOS', array($qtdUsuariosPagina, $qtdUsuariosTotal)));
						}
						else {
							adicionaMensagem(texto('MENSAGEM_ERRO_INTERNO'), 'erro');
							redireciona(array($_SESSION['constructore']['URLOrigem']));
						}
						
						$this->getSmarty()->assign('mostraBuscaAvancada', $mostraBuscaAvancada);
						$this->getSmarty()->assign('possivelProcurarEmails', $possivelProcurarEmails);
						$this->getSmarty()->assign('ordenacaoAtual', $ordenacaoAtual);
						$this->getSmarty()->assign('ordemAtual', $ordemAtual);
						$this->getSmarty()->assign('qtdPaginas', $qtdPaginas);
						$this->getSmarty()->assign('qtdUsuariosPagina', $qtdUsuariosPagina);
						$this->getSmarty()->assign('listaPaginas', $listaPaginas);
						$this->getSmarty()->assign('listaUsuarios', $listaUsuarios);
						
						$this->getSmarty()->assign('LISTA_TITULO_NOME_HREF', montaLink(array('buscaavancada', 'usuarios', 'ordenanome', $ordenacaoAtual != 'nome' ? 'asc' : ($ordemAtual == 'desc' ? 'asc' : 'desc'), 'pagina' . $paginaAtual, $strBusca)));
						$this->getSmarty()->assign('LISTA_TITULO_NOME_TITLE', $ordenacaoAtual != 'nome' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_NOME'))) : ($ordemAtual == 'desc' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_NOME'))) : texto('TEXTO_ORDENA_DESC', array(texto('DADOS_NOME')))));
						
						$this->getSmarty()->assign('LISTA_TITULO_EMAIL_HREF', montaLink(array('buscaavancada', 'usuarios', 'ordenaemail', $ordenacaoAtual != 'email' ? 'asc' : ($ordemAtual == 'desc' ? 'asc' : 'desc'), 'pagina' . $paginaAtual, $strBusca)));
						$this->getSmarty()->assign('LISTA_TITULO_EMAIL_TITLE', $ordenacaoAtual != 'email' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_EMAIL'))) : ($ordemAtual == 'desc' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_EMAIL'))) : texto('TEXTO_ORDENA_DESC', array(texto('DADOS_EMAIL')))));
						
						$this->getSmarty()->assign('LISTA_TITULO_INSTITUICAO_HREF', montaLink(array('buscaavancada', 'usuarios', 'ordenainstituicao', $ordenacaoAtual != 'instituicao' ? 'asc' : ($ordemAtual == 'desc' ? 'asc' : 'desc'), 'pagina' . $paginaAtual, $strBusca)));
						$this->getSmarty()->assign('LISTA_TITULO_INSTITUICAO_TITLE', $ordenacaoAtual != 'instituicao' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_INSTITUICAO'))) : ($ordemAtual == 'desc' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_INSTITUICAO'))) : texto('TEXTO_ORDENA_DESC', array(texto('DADOS_INSTITUICAO')))));
						
						$this->getSmarty()->assign('LISTA_TITULO_TIPO_CADASTRO_HREF', montaLink(array('buscaavancada', 'usuarios', 'ordenatipocadastro', $ordenacaoAtual != 'tipoCadastro' ? 'asc' : ($ordemAtual == 'desc' ? 'asc' : 'desc'), 'pagina' . $paginaAtual, $strBusca)));
						$this->getSmarty()->assign('LISTA_TITULO_TIPO_CADASTRO_TITLE', $ordenacaoAtual != 'tipocadastro' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_FINALIDADE_DE_USO_EXIBICAO'))) : ($ordemAtual == 'desc' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_FINALIDADE_DE_USO_EXIBICAO'))) : texto('TEXTO_ORDENA_DESC', array(texto('DADOS_FINALIDADE_DE_USO_EXIBICAO')))));
						
						$this->getSmarty()->assign('LISTA_TITULO_ULTIMO_ACESSO_HREF', montaLink(array('buscaavancada', 'usuarios', 'ordenaultimoacesso', $ordenacaoAtual != 'ultimoAcesso' ? 'asc' : ($ordemAtual == 'desc' ? 'asc' : 'desc'), 'pagina' . $paginaAtual, $strBusca)));
						$this->getSmarty()->assign('LISTA_TITULO_ULTIMO_ACESSO_TITLE', $ordenacaoAtual != 'tipocadastro' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_ULTIMO_ACESSO'))) : ($ordemAtual == 'desc' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_ULTIMO_ACESSO'))) : texto('TEXTO_ORDENA_DESC', array(texto('DADOS_ULTIMO_ACESSO')))));
						
						$this->exibir('listarusuarios');
						unset($_SESSION['constructore']['listarUsuarios']);
					}
					else {
						//CONFIGURA TITULO DA PAGINA
						$this->getSmarty()->assign('TITULO_BARRA_NAVEGADOR', texto('TITULO_BARRA_NAVEGADOR', array(texto('AREA_CURSOS') . ' - ' . texto('LABEL_BUSCA_AVANCADA'))));
						$this->getSmarty()->assign('TEXTO_NAVEGACAO', texto('LABEL_BUSCA_AVANCADA') . ' > ' . texto('AREA_CURSOS'));
						
						$this->getSmarty()->assign('listaNiveis', getNiveis());
						
						//PEGA PARAMETROS DA BUSCA
						if (defined('PARAMETRO_2'))
							$ordenacaoAtual	=	str_replace('ordena', '', constant('PARAMETRO_2'));
						else
							$ordenacaoAtual	=	'nome';
						
						switch ($ordenacaoAtual) {
							case 'titulo':
								$ordenacaoAtual	=	'nome';
								break;
							case 'datacriacao':
								$ordenacaoAtual	=	'dataCriacao';
								break;
							case 'iniciocurso':
								$ordenacaoAtual	=	'inicioCurso';
								break;
							case 'terminocurso':
								$ordenacaoAtual	=	'terminoCurso';
								break;
						}
						
						if (!preg_match('/^(idCurso|nome|inicioCurso|terminoCurso)$/', $ordenacaoAtual))
							redireciona(array('404'));
							
						if (defined('PARAMETRO_3'))
							$ordemAtual	=	constant('PARAMETRO_3');
						else
							$ordemAtual	=	'asc';
							
						if (defined('PARAMETRO_4'))
							$paginaAtual	=	str_replace('pagina', '', constant('PARAMETRO_4'));
						else
							$paginaAtual	=	1;
							
						if (defined('PARAMETRO_5'))
							$strBusca	=	htmlentities(urldecode(constant('PARAMETRO_5')));
						else
							$strBusca	=	null;
							
						//Configurando Grupos de Conhecimento
						if ($gruposConhecimento	=	GrupoConhecimento::buscar()) {
							$arrayGrupos		=	array();
							foreach ($gruposConhecimento['listaResultados'] as $grupoConhecimento) {
								array_push($arrayGrupos, new GrupoConhecimento($grupoConhecimento['idGrupo']));
							}
							$this->getSmarty()->assign_by_ref('gruposConhecimento', $arrayGrupos);
							
							$strTitulo						=	isset($_GET['titulo'])	?	stripslashes(urldecode($_GET['titulo'])) : null;
							$comLogo						=	isset($_GET['logo'])	?	stripslashes(urldecode($_GET['logo'])) : null;
							$idArea							=	isset($_GET['idarea'])	?	stripslashes(urldecode($_GET['idarea'])) : null;
							$idArea		=	$idArea == '--' ? null : $idArea;
							$strNivel						=	isset($_GET['nivel'])	?	stripslashes(urldecode($_GET['nivel'])) : null;
							$strNivel	=	$strNivel == '--' ? null : $strNivel;
							$strDataInicioMatriculaInicio	=	isset($_GET['iniciomatricula1'])	?	stripslashes(urldecode($_GET['iniciomatricula1'])) : null;
							$strDataInicioMatriculaFim		=	isset($_GET['iniciomatricula2'])	?	stripslashes(urldecode($_GET['iniciomatricula2'])) : null;
							$strDataTerminoMatriculaInicio	=	isset($_GET['terminomatricula1'])	?	stripslashes(urldecode($_GET['terminomatricula1'])) : null;
							$strDataTerminoMatriculaFim		=	isset($_GET['terminomatricula2'])	?	stripslashes(urldecode($_GET['terminomatricula2'])) : null;
							$strDataInicioCursoInicio		=	isset($_GET['iniciocurso1'])	?	stripslashes(urldecode($_GET['iniciocurso1'])) : null;
							$strDataInicioCursoFim			=	isset($_GET['iniciocurso2'])	?	stripslashes(urldecode($_GET['iniciocurso2'])) : null;
							$strDataTerminoCursoInicio		=	isset($_GET['terminocurso1'])	?	stripslashes(urldecode($_GET['terminocurso1'])) : null;
							$strDataTerminoCursoFim			=	isset($_GET['terminocurso2'])	?	stripslashes(urldecode($_GET['terminocurso2'])) : null;
							$strProfessor					=	isset($_GET['professor'])	?	stripslashes(urldecode($_GET['professor'])) : null;
							
							if (!isset($_SESSION['constructore']['listarCursos']) && $strBusca != '') {
								$_SESSION['constructore']['listarCursos']['strTitulo']				=	htmlentities($strTitulo);
								$_SESSION['constructore']['listarCursos']['strApenasCursosComLogo']	=	$comLogo;
								$_SESSION['constructore']['listarCursos']['strArea']				=	$idArea;
								$_SESSION['constructore']['listarCursos']['strNivel']				=	$strNivel;
								$_SESSION['constructore']['listarCursos']['strDataInicioMatriculaInicio']	=	$strDataInicioMatriculaInicio == '' ? null : date('d/m/Y', strtotime($strDataInicioMatriculaInicio));
								$_SESSION['constructore']['listarCursos']['strDataInicioMatriculaFim']		=	$strDataInicioMatriculaFim == '' ? null : date('d/m/Y', strtotime($strDataInicioMatriculaFim));
								$_SESSION['constructore']['listarCursos']['strDataTerminoMatriculaInicio']	=	$strDataTerminoMatriculaInicio == '' ? null : date('d/m/Y', strtotime($strDataTerminoMatriculaInicio));
								$_SESSION['constructore']['listarCursos']['strDataTerminoMatriculaFim']		=	$strDataTerminoMatriculaFim == '' ? null : date('d/m/Y', strtotime($strDataTerminoMatriculaFim));
								$_SESSION['constructore']['listarCursos']['strDataInicioCursoInicio']		=	$strDataInicioCursoInicio == '' ? null : date('d/m/Y', strtotime($strDataInicioCursoInicio));
								$_SESSION['constructore']['listarCursos']['strDataInicioCursoFim']			=	$strDataInicioCursoFim == '' ? null : date('d/m/Y', strtotime($strDataInicioCursoFim));
								$_SESSION['constructore']['listarCursos']['strDataTerminoCursoInicio']		=	$strDataTerminoCursoInicio == '' ? null : date('d/m/Y', strtotime($strDataTerminoCursoInicio));
								$_SESSION['constructore']['listarCursos']['strDataTerminoCursoFim']			=	$strDataTerminoCursoFim == '' ? null : date('d/m/Y', strtotime($strDataTerminoCursoFim));
								$_SESSION['constructore']['listarCursos']['strProfessor']			=	$strProfessor;
							}
							
							//CONFIGURA VARIAVEIS DE CONTROLE DE EXIBICAO DE PARTES DA PAGINA
							$mostraBuscaAvancada	=	true;
							
							if ($strProfessor != '') {
								if ($resultadoProfessor = Usuario::buscarNome($strProfessor)) {
									$idsDono	=	array();
									if (sizeof($resultadoProfessor['listaResultados']) > 0) {
										foreach ($resultadoProfessor['listaResultados'] as $dadosProfessor) {
											array_push($idsDono, $dadosProfessor['idUsuario']);
										}
									}
									else {
										$idsDono	=	0;
									}
									$erroProfessor	=	false;
								}
								else {
									$erroProfessor	=	true;
								}
							}
							else {
								$idsDono	=	null;
								$erroProfessor	=	false;
							}
							
							if (!$erroProfessor) {
								if ($resultado			=	Curso::buscar(null, $idsDono, $idArea, null, $strTitulo, $comLogo, null, $strNivel, $strDataInicioMatriculaInicio, $strDataInicioMatriculaFim, $strDataTerminoMatriculaInicio, $strDataTerminoMatriculaFim, $strDataInicioCursoInicio, $strDataInicioCursoFim, $strDataTerminoCursoInicio, $strDataTerminoCursoFim, null, null, 'sim', 'nao', null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, $paginaAtual, constant('__QTD_ITENS_LISTA__'), $ordenacaoAtual, $ordemAtual)) {
									$listaCursos		=	$resultado['listaResultados'];
									$qtdPaginas			=	$resultado['qtdPaginas'];
									$qtdCursosTotal		=	$resultado['qtdResultadosTotal'];
									
									$qtdCursosPagina	=	sizeof($listaCursos);
									
									foreach ($listaCursos as $indice => $curso) {
										if ($resultadoProfessor = Usuario::getUsuarioPorId($curso['idDono'])) {
											if ($resultadoProfessor['qtdResultadosTotal'] == 1) {
												$curso['dono']		=	nomeSobrenome($resultadoProfessor['listaResultados'][0]['nome']);
												$curso['donoHREF']	=	montaLink(array('usuario', $resultadoProfessor['listaResultados'][0]['idUsuario']));
											}
											else {
												adicionaMensagem(texto('MENSAGEM_ERRO_INTERNO'), 'erro');
												redireciona($_SESSION['constructore']['URLOrigem']);
											}
										}
										else {
											adicionaMensagem(texto('MENSAGEM_ERRO_INTERNO'), 'erro');
											redireciona($_SESSION['constructore']['URLOrigem']);
										}
										
										if ($curso['logo'] == '')
											$curso['logo']	=	'cursodefault_pequeno.png';
										else
											$curso['logo']	=	str_replace('original', 'pequeno', $curso['logo']);
											
										$curso['dimensoesLogo']	=	getimagesize(constant('__CAMINHO_LOGO_CURSO__') . $curso['logo']);
										$curso['dimensoesLogo']	=	'width="' . $curso['dimensoesLogo'][0] . '" height="' . $curso['dimensoesLogo'][1] . '"';
											
										$curso['logo']			=	constant('__URL_LOGO_CURSO__') . $curso['logo'];
											
										$curso['titleLogo']		=	texto('TITLE_LOGO_CURSO', array($curso['nome']));
										$curso['href']			=	montalink(array('curso', $curso['urlCurso']));
										$curso['dataCriacao']	=	getDataHoraFormatada($curso['dataCriacao']);
										$curso['inicioCurso']	=	getDataFormatada($curso['inicioCurso']);
										$curso['terminoCurso']	=	getDataFormatada($curso['terminoCurso']);
										$dataHoje				=	date('Y-m-d');
											
										if (comparaDatasString($curso['inicioMatricula'], $dataHoje) >= 0) {
											//Matricula ja abriu
											if (comparaDatasString($curso['terminoMatricula'], $dataHoje) > 0) {
												//Matricula ja abriu e ja fechou
												$curso['matricula']	=	texto('DADOS_MATRICULA_FECHADA');
											}
											else {
												//Matricula ja abriu e nao fechou, esta aberta
												$curso['matricula']	=	texto('DADOS_MATRICULA_ABERTA_ATE', array(getDataFormatada($curso['terminoMatricula'])));
											}
										}
										else {
											//Matricula ainda nao abriu
											$curso['matricula']	=	texto('DADOS_MATRICULA_ABRE_EM', array(getDataFormatada($curso['inicioMatricula'])));
										}
											
										$listaCursos[$indice]		=	$curso;
									}
									
									$listaPaginas	=	array();
									for ($i = 1; $i <= $qtdPaginas; $i++) {
										if ($i != $paginaAtual)
											array_push($listaPaginas, array('href' => montaLink(array('buscaavancada', 'cursos', $ordenacaoAtual, $ordemAtual, 'pagina' . $i, $strBusca)), 'pagina' => $i));
										else
											array_push($listaPaginas, array('pagina' => $i));
									}
									
									$this->getSmarty()->assign('TEXTO_QUANTIDADE_RESULTADOS', texto('TEXTO_QUANTIDADE_RESULTADOS', array($qtdCursosPagina, $qtdCursosTotal)));
								}
								else {
									adicionaMensagem(texto('MENSAGEM_ERRO_INTERNO'), 'erro');
									redireciona(array($_SESSION['constructore']['URLOrigem']));
								}
								
								$this->getSmarty()->assign('mostraPaginacao', true);
								$this->getSmarty()->assign('mostraCriador', true);
								$this->getSmarty()->assign('mostraMatricula', true);
								$this->getSmarty()->assign('mostraBuscaAvancada', $mostraBuscaAvancada);
								
								$this->getSmarty()->assign('ordenacaoAtual', $ordenacaoAtual);
								$this->getSmarty()->assign('ordemAtual', $ordemAtual);
								$this->getSmarty()->assign('qtdPaginas', $qtdPaginas);
								$this->getSmarty()->assign('qtdCursosPagina', $listaCursos);
								$this->getSmarty()->assign('listaPaginas', $listaPaginas);
								$this->getSmarty()->assign('listaCursos', $listaCursos);
								
								$this->getSmarty()->assign('LISTA_TITULO_TITULO_CURSO_HREF', montaLink(array('buscaavancada', 'cursos', 'ordenatitulo', $ordenacaoAtual != 'nome' ? 'asc' : ($ordemAtual == 'desc' ? 'asc' : 'desc'), 'pagina' . $paginaAtual, $strBusca)));
								$this->getSmarty()->assign('LISTA_TITULO_TITULO_CURSO_TITLE', $ordenacaoAtual != 'nome' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_TITULO'))) : ($ordemAtual == 'desc' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_TITULO'))) : texto('TEXTO_ORDENA_DESC', array(texto('DADOS_TITULO')))));
								
								$this->getSmarty()->assign('LISTA_TITULO_CRIACAO_HREF', montaLink(array('buscaavancada', 'cursos', 'ordenadatacriacao', $ordenacaoAtual != 'dataCriacao' ? 'asc' : ($ordemAtual == 'desc' ? 'asc' : 'desc'), 'pagina' . $paginaAtual, $strBusca)));
								$this->getSmarty()->assign('LISTA_TITULO_CRIACAO_TITLE', $ordenacaoAtual != 'dataCriacao' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_DATA_DE_CRIACAO'))) : ($ordemAtual == 'desc' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_DATA_DE_CRIACAO'))) : texto('TEXTO_ORDENA_DESC', array(texto('DADOS_DATA_DE_CRIACAO')))));
								
								$this->getSmarty()->assign('LISTA_TITULO_DATA_INICIO_HREF', montaLink(array('buscaavancada', 'cursos', 'ordenainiciocurso', $ordenacaoAtual != 'inicioCurso' ? 'asc' : ($ordemAtual == 'desc' ? 'asc' : 'desc'), 'pagina' . $paginaAtual, $strBusca)));
								$this->getSmarty()->assign('LISTA_TITULO_DATA_INICIO_TITLE', $ordenacaoAtual != 'inicioCurso' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_INICIO'))) : ($ordemAtual == 'desc' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_INICIO'))) : texto('TEXTO_ORDENA_DESC', array(texto('DADOS_INICIO')))));
								
								$this->getSmarty()->assign('LISTA_TITULO_DATA_TERMINO_HREF', montaLink(array('buscaavancada', 'cursos', 'ordenaterminocurso', $ordenacaoAtual != 'terminoCurso' ? 'asc' : ($ordemAtual == 'desc' ? 'asc' : 'desc'), 'pagina' . $paginaAtual, $strBusca)));
								$this->getSmarty()->assign('LISTA_TITULO_DATA_TERMINO_TITLE', $ordenacaoAtual != 'terminoCurso' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_TERMINO'))) : ($ordemAtual == 'desc' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_TERMINO'))) : texto('TEXTO_ORDENA_DESC', array(texto('DADOS_TERMINO')))));
								
								$this->exibir('listarcursos');
								unset($_SESSION['constructore']['listarCursos']);
							}
							else {
								//Nao conseguiu pegar os grupos de conhecimento
								adicionaMensagem(texto('MENSAGEM_ERRO_INTERNO'), 'erro');
								redireciona($_SESSION['constructore']['URLOrigem']);
							}
						}
						else {
							//Nao conseguiu pegar os grupos de conhecimento
							adicionaMensagem(texto('MENSAGEM_ERRO_INTERNO'), 'erro');
							redireciona($_SESSION['constructore']['URLOrigem']);
						}
					}
				}
				else {
					redireciona(array('404'));
				}
			}
		}
		else {
			redireciona(array('404'));
		}
	}
	else {
		adicionaMensagem(texto('MENSAGEM_ERRO_USUARIO_NAO_LOGADO'),'erro');
		redireciona(array('principal'));
	}
?>
